home *** CD-ROM | disk | FTP | other *** search
/ CD ROM Paradise Collection 4 / CD ROM Paradise Collection 4 1995 Nov.iso / edit / thesrc20.zip / key.h < prev    next >
C/C++ Source or Header  |  1995-01-26  |  22KB  |  599 lines

  1. /*
  2.  * THE - The Hessling Editor. A text editor similar to VM/CMS xedit.
  3.  * Copyright (C) 1991-1995 Mark Hessling
  4.  *
  5.  * This program is free software; you can redistribute it and/or
  6.  * modify it under the terms of the GNU General Public License as
  7.  * published by the Free Software Foundation; either version 2 of
  8.  * the License, or any later version.
  9.  *
  10.  * This program is distributed in the hope that it will be useful,
  11.  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  12.  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  13.  * General Public License for more details.
  14.  *
  15.  * You should have received a copy of the GNU General Public License
  16.  * along with this program; if not, write to:
  17.  *
  18.  *    The Free Software Foundation, Inc.
  19.  *    675 Mass Ave,
  20.  *    Cambridge, MA 02139 USA.
  21.  *
  22.  *
  23.  * If you make modifications to this software that you feel increases
  24.  * it usefulness for the rest of the community, please email the
  25.  * changes, enhancements, bug fixes as well as any and all ideas to me.
  26.  * This software is going to be maintained and enhanced as deemed
  27.  * necessary by the community.
  28.  *
  29.  * Mark Hessling                     email: M.Hessling@gu.edu.au
  30.  * 36 David Road                     Phone: +61 7 849 7731
  31.  * Holland Park                      Fax:   +61 7 875 5314
  32.  * QLD 4121
  33.  * Australia
  34.  */
  35.  
  36. /*
  37. $Id: key.h 2.0 1995/01/26 16:31:17 MH Release MH $
  38. */
  39.  
  40. #if defined(USE_EXTCURSES)
  41. # include <cur02.h>
  42. #endif
  43.  
  44. #include "getch.h"
  45.  
  46. struct key_values
  47. {
  48.  CHARTYPE *mnemonic;
  49.  int key_value;
  50. };
  51. typedef struct key_values KEYS;
  52.  
  53. KEYS key_table[] =
  54. {
  55.   {(CHARTYPE *)"A",(int)'a'},
  56.   {(CHARTYPE *)"B",(int)'b'},
  57.   {(CHARTYPE *)"C",(int)'c'},
  58.   {(CHARTYPE *)"D",(int)'d'},
  59.   {(CHARTYPE *)"E",(int)'e'},
  60.   {(CHARTYPE *)"F",(int)'f'},
  61.   {(CHARTYPE *)"G",(int)'g'},
  62.   {(CHARTYPE *)"H",(int)'h'},
  63.   {(CHARTYPE *)"I",(int)'i'},
  64.   {(CHARTYPE *)"J",(int)'j'},
  65.   {(CHARTYPE *)"K",(int)'k'},
  66.   {(CHARTYPE *)"L",(int)'l'},
  67.   {(CHARTYPE *)"M",(int)'m'},
  68.   {(CHARTYPE *)"N",(int)'n'},
  69.   {(CHARTYPE *)"O",(int)'o'},
  70.   {(CHARTYPE *)"P",(int)'p'},
  71.   {(CHARTYPE *)"Q",(int)'q'},
  72.   {(CHARTYPE *)"R",(int)'r'},
  73.   {(CHARTYPE *)"S",(int)'s'},
  74.   {(CHARTYPE *)"T",(int)'t'},
  75.   {(CHARTYPE *)"U",(int)'u'},
  76.   {(CHARTYPE *)"V",(int)'v'},
  77.   {(CHARTYPE *)"W",(int)'w'},
  78.   {(CHARTYPE *)"X",(int)'x'},
  79.   {(CHARTYPE *)"Y",(int)'y'},
  80.   {(CHARTYPE *)"Z",(int)'z'},
  81.   {(CHARTYPE *)"S-A",(int)'A'},
  82.   {(CHARTYPE *)"S-B",(int)'B'},
  83.   {(CHARTYPE *)"S-C",(int)'C'},
  84.   {(CHARTYPE *)"S-D",(int)'D'},
  85.   {(CHARTYPE *)"S-E",(int)'E'},
  86.   {(CHARTYPE *)"S-F",(int)'F'},
  87.   {(CHARTYPE *)"S-G",(int)'G'},
  88.   {(CHARTYPE *)"S-H",(int)'H'},
  89.   {(CHARTYPE *)"S-I",(int)'I'},
  90.   {(CHARTYPE *)"S-J",(int)'J'},
  91.   {(CHARTYPE *)"S-K",(int)'K'},
  92.   {(CHARTYPE *)"S-L",(int)'L'},
  93.   {(CHARTYPE *)"S-M",(int)'M'},
  94.   {(CHARTYPE *)"S-N",(int)'N'},
  95.   {(CHARTYPE *)"S-O",(int)'O'},
  96.   {(CHARTYPE *)"S-P",(int)'P'},
  97.   {(CHARTYPE *)"S-Q",(int)'Q'},
  98.   {(CHARTYPE *)"S-R",(int)'R'},
  99.   {(CHARTYPE *)"S-S",(int)'S'},
  100.   {(CHARTYPE *)"S-T",(int)'T'},
  101.   {(CHARTYPE *)"S-U",(int)'U'},
  102.   {(CHARTYPE *)"S-V",(int)'V'},
  103.   {(CHARTYPE *)"S-W",(int)'W'},
  104.   {(CHARTYPE *)"S-X",(int)'X'},
  105.   {(CHARTYPE *)"S-Y",(int)'Y'},
  106.   {(CHARTYPE *)"S-Z",(int)'Z'},
  107.   {(CHARTYPE *)"0",(int)'0'},
  108.   {(CHARTYPE *)"1",(int)'1'},
  109.   {(CHARTYPE *)"2",(int)'2'},
  110.   {(CHARTYPE *)"3",(int)'3'},
  111.   {(CHARTYPE *)"4",(int)'4'},
  112.   {(CHARTYPE *)"5",(int)'5'},
  113.   {(CHARTYPE *)"6",(int)'6'},
  114.   {(CHARTYPE *)"7",(int)'7'},
  115.   {(CHARTYPE *)"8",(int)'8'},
  116.   {(CHARTYPE *)"9",(int)'9'},
  117.   {(CHARTYPE *)"`",(int)'`'},
  118.   {(CHARTYPE *)"-",(int)'-'},
  119.   {(CHARTYPE *)"=",(int)'='},
  120.   {(CHARTYPE *)"[",(int)'['},
  121.   {(CHARTYPE *)"]",(int)']'},
  122.   {(CHARTYPE *)"\\",(int)'\\'},
  123.   {(CHARTYPE *)";",(int)';'},
  124.   {(CHARTYPE *)"'",(int)'\''},
  125.   {(CHARTYPE *)",",(int)','},
  126.   {(CHARTYPE *)".",(int)'.'},
  127.   {(CHARTYPE *)"/",(int)'/'},
  128.   {(CHARTYPE *)")",(int)')'},
  129.   {(CHARTYPE *)"!",(int)'!'},
  130.   {(CHARTYPE *)"@",(int)'@'},
  131.   {(CHARTYPE *)"#",(int)'#'},
  132.   {(CHARTYPE *)"$",(int)'$'},
  133.   {(CHARTYPE *)"%",(int)'%'},
  134.   {(CHARTYPE *)"^",(int)'^'},
  135.   {(CHARTYPE *)"&",(int)'&'},
  136.   {(CHARTYPE *)"*",(int)'*'},
  137.   {(CHARTYPE *)"(",(int)'('},
  138.   {(CHARTYPE *)"~",(int)'~'},
  139.   {(CHARTYPE *)"_",(int)'_'},
  140.   {(CHARTYPE *)"+",(int)'+'},
  141.   {(CHARTYPE *)"{",(int)'{'},
  142.   {(CHARTYPE *)"}",(int)'}'},
  143.   {(CHARTYPE *)"|",(int)'|'},
  144.   {(CHARTYPE *)":",(int)':'},
  145.   {(CHARTYPE *)"\"",(int)'\"'},
  146.   {(CHARTYPE *)"<",(int)'<'},
  147.   {(CHARTYPE *)">",(int)'>'},
  148.   {(CHARTYPE *)"?",(int)'?'},
  149.   {(CHARTYPE *)"SPACE",(int)' '},
  150.  
  151. #if defined(DOS) || defined(OS2)
  152. /* normal characters */
  153.   {(CHARTYPE *)"CURU",KEY_CURU},
  154.   {(CHARTYPE *)"CURD",KEY_CURD},
  155.   {(CHARTYPE *)"CURL",KEY_CURL},
  156.   {(CHARTYPE *)"CURR",KEY_CURR},
  157.   {(CHARTYPE *)"ENTER",KEY_RETURN },
  158.   {(CHARTYPE *)"TAB",KEY_TAB },
  159.   {(CHARTYPE *)"ESC",KEY_ESC },
  160.   {(CHARTYPE *)"BKSP",KEY_BKSP },
  161.   {(CHARTYPE *)"F1",KEY_F1},
  162.   {(CHARTYPE *)"F2",KEY_F2},
  163.   {(CHARTYPE *)"F3",KEY_F3},
  164.   {(CHARTYPE *)"F4",KEY_F4},
  165.   {(CHARTYPE *)"F5",KEY_F5},
  166.   {(CHARTYPE *)"F6",KEY_F6},
  167.   {(CHARTYPE *)"F7",KEY_F7},
  168.   {(CHARTYPE *)"F8",KEY_F8},
  169.   {(CHARTYPE *)"F9",KEY_F9},
  170.   {(CHARTYPE *)"F10",KEY_F10},
  171.   {(CHARTYPE *)"F11",KEY_F11},
  172.   {(CHARTYPE *)"F12",KEY_F12},
  173.   {(CHARTYPE *)"HOME",KEY_HOME},
  174.   {(CHARTYPE *)"PGUP",KEY_PGUP},
  175.   {(CHARTYPE *)"PGDN",KEY_PGDN},
  176.   {(CHARTYPE *)"END",KEY_END},
  177.   {(CHARTYPE *)"INS",KEY_INS},
  178.   {(CHARTYPE *)"DEL",KEY_DEL},
  179.   {(CHARTYPE *)"CENTER",KEY_NUMCENTER },
  180.   {(CHARTYPE *)"PLUS",KEY_NUMPLUS},
  181.   {(CHARTYPE *)"MINUS",KEY_NUMMINUS},
  182.   {(CHARTYPE *)"SLASH",KEY_NUMSLASH},
  183.   {(CHARTYPE *)"STAR",KEY_NUMSTAR},
  184.   {(CHARTYPE *)"NUMENTER",KEY_NUMENTER},
  185. /* shifted characters */
  186.   {(CHARTYPE *)"S-TAB",KEY_S_TAB },
  187.   {(CHARTYPE *)"S-F1",KEY_S_F1},
  188.   {(CHARTYPE *)"S-F2",KEY_S_F2},
  189.   {(CHARTYPE *)"S-F3",KEY_S_F3},
  190.   {(CHARTYPE *)"S-F4",KEY_S_F4},
  191.   {(CHARTYPE *)"S-F5",KEY_S_F5},
  192.   {(CHARTYPE *)"S-F6",KEY_S_F6},
  193.   {(CHARTYPE *)"S-F7",KEY_S_F7},
  194.   {(CHARTYPE *)"S-F8",KEY_S_F8},
  195.   {(CHARTYPE *)"S-F9",KEY_S_F9},
  196.   {(CHARTYPE *)"S-F10",KEY_S_F10},
  197.   {(CHARTYPE *)"S-F11",KEY_S_F11},
  198.   {(CHARTYPE *)"S-F12",KEY_S_F12},
  199.   {(CHARTYPE *)"S-HOME",KEY_S_HOME},
  200.   {(CHARTYPE *)"S-PGUP",KEY_S_PGUP},
  201.   {(CHARTYPE *)"S-PGDN",KEY_S_PGDN},
  202.   {(CHARTYPE *)"S-CURU",KEY_S_CURU},
  203.   {(CHARTYPE *)"S-CURD",KEY_S_CURD},
  204.   {(CHARTYPE *)"S-CURL",KEY_S_CURL},
  205.   {(CHARTYPE *)"S-CURR",KEY_S_CURR},
  206.   {(CHARTYPE *)"S-END",KEY_S_END},
  207.   {(CHARTYPE *)"S-INS",KEY_S_INS},
  208.   {(CHARTYPE *)"S-DEL",KEY_S_DEL},
  209.   {(CHARTYPE *)"S-CENTER",KEY_S_NUMCENTER},
  210.   {(CHARTYPE *)"S-NUMSTOP",KEY_S_NUMSTOP},
  211.   {(CHARTYPE *)"S-NUM0",KEY_S_NUM0},
  212.   {(CHARTYPE *)"S-NUM1",KEY_S_NUM1},
  213.   {(CHARTYPE *)"S-NUM2",KEY_S_NUM2},
  214.   {(CHARTYPE *)"S-NUM3",KEY_S_NUM3},
  215.   {(CHARTYPE *)"S-NUM4",KEY_S_NUM4},
  216.   {(CHARTYPE *)"S-NUM6",KEY_S_NUM6},
  217.   {(CHARTYPE *)"S-NUM7",KEY_S_NUM7},
  218.   {(CHARTYPE *)"S-NUM8",KEY_S_NUM8},
  219.   {(CHARTYPE *)"S-NUM9",KEY_S_NUM9},
  220. /* control characters */
  221.   {(CHARTYPE *)"C-2",KEY_C_2  },
  222.   {(CHARTYPE *)"C-6",KEY_C_6  },
  223.   {(CHARTYPE *)"C--",KEY_C_MINUS  },
  224.   {(CHARTYPE *)"C-[",KEY_C_LBRACKET  },
  225.   {(CHARTYPE *)"C-]",KEY_C_RBRACKET  },
  226.   {(CHARTYPE *)"C-\\",KEY_C_BSLASH  },
  227.   {(CHARTYPE *)"C-ENTER",KEY_C_ENTER },
  228.   {(CHARTYPE *)"C-TAB",KEY_C_TAB},
  229.   {(CHARTYPE *)"C-BKSP",KEY_C_BKSP  },
  230.   {(CHARTYPE *)"C-F1",KEY_C_F1},
  231.   {(CHARTYPE *)"C-F2",KEY_C_F2},
  232.   {(CHARTYPE *)"C-F3",KEY_C_F3},
  233.   {(CHARTYPE *)"C-F4",KEY_C_F4},
  234.   {(CHARTYPE *)"C-F5",KEY_C_F5},
  235.   {(CHARTYPE *)"C-F6",KEY_C_F6},
  236.   {(CHARTYPE *)"C-F7",KEY_C_F7},
  237.   {(CHARTYPE *)"C-F8",KEY_C_F8},
  238.   {(CHARTYPE *)"C-F9",KEY_C_F9},
  239.   {(CHARTYPE *)"C-F10",KEY_C_F10},
  240.   {(CHARTYPE *)"C-F11",KEY_C_F11},
  241.   {(CHARTYPE *)"C-F12",KEY_C_F12},
  242.   {(CHARTYPE *)"C-HOME",KEY_C_HOME},
  243.   {(CHARTYPE *)"C-PGUP",KEY_C_PGUP},
  244.   {(CHARTYPE *)"C-PGDN",KEY_C_PGDN},
  245.   {(CHARTYPE *)"C-CURU",KEY_C_CURU},
  246.   {(CHARTYPE *)"C-CURD",KEY_C_CURD},
  247.   {(CHARTYPE *)"C-CURL",KEY_C_CURL},
  248.   {(CHARTYPE *)"C-CURR",KEY_C_CURR},
  249.   {(CHARTYPE *)"C-END",KEY_C_END},
  250.   {(CHARTYPE *)"C-INS",KEY_C_INS},
  251.   {(CHARTYPE *)"C-DEL",KEY_C_DEL},
  252.   {(CHARTYPE *)"C-CENTER",KEY_C_NUMCENTER},
  253.   {(CHARTYPE *)"C-NUMSTOP",KEY_C_NUMSTOP},
  254.   {(CHARTYPE *)"C-NUM0",KEY_C_NUM0},
  255.   {(CHARTYPE *)"C-NUM1",KEY_C_NUM1},
  256.   {(CHARTYPE *)"C-NUM2",KEY_C_NUM2},
  257.   {(CHARTYPE *)"C-NUM3",KEY_C_NUM3},
  258.   {(CHARTYPE *)"C-NUM4",KEY_C_NUM4},
  259.   {(CHARTYPE *)"C-NUM6",KEY_C_NUM6},
  260.   {(CHARTYPE *)"C-NUM7",KEY_C_NUM7},
  261.   {(CHARTYPE *)"C-NUM8",KEY_C_NUM8},
  262.   {(CHARTYPE *)"C-NUM9",KEY_C_NUM9},
  263.   {(CHARTYPE *)"C-PLUS",KEY_C_NUMPLUS},
  264.   {(CHARTYPE *)"C-MINUS",KEY_C_NUMMINUS},
  265.   {(CHARTYPE *)"C-SLASH",KEY_C_NUMSLASH},
  266.   {(CHARTYPE *)"C-STAR",KEY_C_NUMSTAR},
  267.   {(CHARTYPE *)"C-NUMENTER",KEY_C_NUMENTER},
  268. /* alt characters */
  269.   {(CHARTYPE *)"A-A",KEY_A_a},
  270.   {(CHARTYPE *)"A-B",KEY_A_b},
  271.   {(CHARTYPE *)"A-C",KEY_A_c},
  272.   {(CHARTYPE *)"A-D",KEY_A_d},
  273.   {(CHARTYPE *)"A-E",KEY_A_e},
  274.   {(CHARTYPE *)"A-F",KEY_A_f},
  275.   {(CHARTYPE *)"A-G",KEY_A_g},
  276.   {(CHARTYPE *)"A-H",KEY_A_h},
  277.   {(CHARTYPE *)"A-I",KEY_A_i},
  278.   {(CHARTYPE *)"A-J",KEY_A_j},
  279.   {(CHARTYPE *)"A-K",KEY_A_k},
  280.   {(CHARTYPE *)"A-L",KEY_A_l},
  281.   {(CHARTYPE *)"A-M",KEY_A_m},
  282.   {(CHARTYPE *)"A-N",KEY_A_n},
  283.   {(CHARTYPE *)"A-O",KEY_A_o},
  284.   {(CHARTYPE *)"A-P",KEY_A_p},
  285.   {(CHARTYPE *)"A-Q",KEY_A_q},
  286.   {(CHARTYPE *)"A-R",KEY_A_r},
  287.   {(CHARTYPE *)"A-S",KEY_A_s},
  288.   {(CHARTYPE *)"A-T",KEY_A_t},
  289.   {(CHARTYPE *)"A-U",KEY_A_u},
  290.   {(CHARTYPE *)"A-V",KEY_A_v},
  291.   {(CHARTYPE *)"A-W",KEY_A_w},
  292.   {(CHARTYPE *)"A-X",KEY_A_x},
  293.   {(CHARTYPE *)"A-Y",KEY_A_y},
  294.   {(CHARTYPE *)"A-Z",KEY_A_z},
  295.   {(CHARTYPE *)"A-0",KEY_A_0},
  296.   {(CHARTYPE *)"A-1",KEY_A_1},
  297.   {(CHARTYPE *)"A-2",KEY_A_2},
  298.   {(CHARTYPE *)"A-3",KEY_A_3},
  299.   {(CHARTYPE *)"A-4",KEY_A_4},
  300.   {(CHARTYPE *)"A-5",KEY_A_5},
  301.   {(CHARTYPE *)"A-6",KEY_A_6},
  302.   {(CHARTYPE *)"A-7",KEY_A_7},
  303.   {(CHARTYPE *)"A-8",KEY_A_8},
  304.   {(CHARTYPE *)"A-9",KEY_A_9},
  305.   {(CHARTYPE *)"A-`",KEY_A_BQUOTE},
  306.   {(CHARTYPE *)"A--",KEY_A_MINUS},
  307.   {(CHARTYPE *)"A-=",KEY_A_EQUAL},
  308.   {(CHARTYPE *)"A-[",KEY_A_LBRACKET},
  309.   {(CHARTYPE *)"A-]",KEY_A_RBRACKET},
  310.   {(CHARTYPE *)"A-\\",KEY_A_BSLASH},
  311.   {(CHARTYPE *)"A-;",KEY_A_SEMICOLON},
  312.   {(CHARTYPE *)"A-'",KEY_A_FQUOTE},
  313.   {(CHARTYPE *)"A-,",KEY_A_COMMA},
  314.   {(CHARTYPE *)"A-.",KEY_A_STOP},
  315.   {(CHARTYPE *)"A-/",KEY_A_FSLASH},
  316.   {(CHARTYPE *)"A-ENTER",KEY_A_ENTER},
  317.   {(CHARTYPE *)"A-TAB",KEY_A_TAB},
  318.   {(CHARTYPE *)"A-ESC",KEY_A_ESC },
  319.   {(CHARTYPE *)"A-BKSP",KEY_A_BKSP },
  320.   {(CHARTYPE *)"A-F1",KEY_A_F1},
  321.   {(CHARTYPE *)"A-F2",KEY_A_F2},
  322.   {(CHARTYPE *)"A-F3",KEY_A_F3},
  323.   {(CHARTYPE *)"A-F4",KEY_A_F4},
  324.   {(CHARTYPE *)"A-F5",KEY_A_F5},
  325.   {(CHARTYPE *)"A-F6",KEY_A_F6},
  326.   {(CHARTYPE *)"A-F7",KEY_A_F7},
  327.   {(CHARTYPE *)"A-F8",KEY_A_F8},
  328.   {(CHARTYPE *)"A-F9",KEY_A_F9},
  329.   {(CHARTYPE *)"A-F10",KEY_A_F10},
  330.   {(CHARTYPE *)"A-F11",KEY_A_F11},
  331.   {(CHARTYPE *)"A-F12",KEY_A_F12},
  332.   {(CHARTYPE *)"A-HOME",KEY_A_HOME},
  333.   {(CHARTYPE *)"A-PGUP",KEY_A_PGUP},
  334.   {(CHARTYPE *)"A-PGDN",KEY_A_PGDN},
  335.   {(CHARTYPE *)"A-CURU",KEY_A_CURU},
  336.   {(CHARTYPE *)"A-CURD",KEY_A_CURD},
  337.   {(CHARTYPE *)"A-CURL",KEY_A_CURL},
  338.   {(CHARTYPE *)"A-CURR",KEY_A_CURR},
  339.   {(CHARTYPE *)"A-END",KEY_A_END},
  340.   {(CHARTYPE *)"A-INS",KEY_A_INS},
  341.   {(CHARTYPE *)"A-DEL",KEY_A_DEL},
  342.   {(CHARTYPE *)"A-PLUS",KEY_A_NUMPLUS},
  343.   {(CHARTYPE *)"A-MINUS",KEY_A_NUMMINUS},
  344.   {(CHARTYPE *)"A-SLASH",KEY_A_NUMSLASH},
  345.   {(CHARTYPE *)"A-STAR",KEY_A_NUMSTAR},
  346.   {(CHARTYPE *)"A-NUMENTER",KEY_A_NUMENTER},
  347. #else
  348.   {(CHARTYPE *)"CURD"     ,KEY_DOWN },
  349.   {(CHARTYPE *)"CURU"     ,KEY_UP },
  350.   {(CHARTYPE *)"CURL"     ,KEY_LEFT },
  351.   {(CHARTYPE *)"CURR"     ,KEY_RIGHT},
  352.   {(CHARTYPE *)"BACKSPACE",KEY_BACKSPACE},
  353.   {(CHARTYPE *)"HOME"     ,KEY_HOME},
  354.   {(CHARTYPE *)"Help"     ,KEY_Help},
  355.   {(CHARTYPE *)"Do"       ,KEY_Do},
  356.   {(CHARTYPE *)"PF1"      ,KEY_PF1},
  357.   {(CHARTYPE *)"PF2"      ,KEY_PF2},
  358.   {(CHARTYPE *)"PF3"      ,KEY_PF3},
  359.   {(CHARTYPE *)"PF4"      ,KEY_PF4},
  360.   {(CHARTYPE *)"Pad0"     ,KEY_Pad0},
  361.   {(CHARTYPE *)"Pad1"     ,KEY_Pad1},
  362.   {(CHARTYPE *)"Pad2"     ,KEY_Pad2},
  363.   {(CHARTYPE *)"Pad3"     ,KEY_Pad3},
  364.   {(CHARTYPE *)"Pad4"     ,KEY_Pad4},
  365.   {(CHARTYPE *)"Pad5"     ,KEY_Pad5},
  366.   {(CHARTYPE *)"Pad6"     ,KEY_Pad6},
  367.   {(CHARTYPE *)"Pad7"     ,KEY_Pad7},
  368.   {(CHARTYPE *)"Pad8"     ,KEY_Pad8},
  369.   {(CHARTYPE *)"Pad9"     ,KEY_Pad9},
  370.   {(CHARTYPE *)"PadEnter" ,KEY_PadEnter},
  371.   {(CHARTYPE *)"PadMinus" ,KEY_PadMinus},
  372.   {(CHARTYPE *)"PadPeriod",KEY_PadPeriod},
  373.   {(CHARTYPE *)"PadComma" ,KEY_PadComma},
  374.   {(CHARTYPE *)"BackTab"  ,KEY_BackTab},
  375.   {(CHARTYPE *)"Find"     ,KEY_Find},
  376.   {(CHARTYPE *)"InsertHere",KEY_InsertHere},
  377.   {(CHARTYPE *)"Remove"   ,KEY_Remove},
  378.   {(CHARTYPE *)"Select"   ,KEY_Select},
  379.   {(CHARTYPE *)"PrevScreen",KEY_PrevScreen},
  380.   {(CHARTYPE *)"PrevScrn" ,KEY_PrevScrn},
  381.   {(CHARTYPE *)"NextScreen",KEY_NextScreen},
  382.   {(CHARTYPE *)"NextScrn" ,KEY_NextScrn},
  383.   {(CHARTYPE *)"S-F1"     ,KEY_SF1},
  384.   {(CHARTYPE *)"S-F2"     ,KEY_SF2},
  385.   {(CHARTYPE *)"S-F3"     ,KEY_SF3},
  386.   {(CHARTYPE *)"S-F4"     ,KEY_SF4},
  387.   {(CHARTYPE *)"S-F5"     ,KEY_SF5},
  388.   {(CHARTYPE *)"S-F6"     ,KEY_SF6},
  389.   {(CHARTYPE *)"S-F7"     ,KEY_SF7},
  390.   {(CHARTYPE *)"S-F8"     ,KEY_SF8},
  391.   {(CHARTYPE *)"S-F9"     ,KEY_SF9},
  392.   {(CHARTYPE *)"S-F10"    ,KEY_SF10},
  393.   {(CHARTYPE *)"S-F11"    ,KEY_SF11},
  394.   {(CHARTYPE *)"S-F12"    ,KEY_SF12},
  395.   {(CHARTYPE *)"S-F13"    ,KEY_SF13},
  396.   {(CHARTYPE *)"S-F14"    ,KEY_SF14},
  397.   {(CHARTYPE *)"S-F15"    ,KEY_SF15},
  398.   {(CHARTYPE *)"S-Help"   ,KEY_SHelp},
  399.   {(CHARTYPE *)"S-F16"    ,KEY_SF16},
  400.   {(CHARTYPE *)"S-Do"     ,KEY_SDo},
  401.   {(CHARTYPE *)"S-F17"    ,KEY_SF17},
  402.   {(CHARTYPE *)"S-F18"    ,KEY_SF18},
  403.   {(CHARTYPE *)"S-F19"    ,KEY_SF19},
  404.   {(CHARTYPE *)"S-F20"    ,KEY_SF20},
  405. #if defined(USE_EXTCURSES)
  406.   {(CHARTYPE *)"TAB"      ,KEY_TAB},
  407.   {(CHARTYPE *)"ENTER"    ,KEY_NEWL},
  408. #else
  409.   {(CHARTYPE *)"TAB"      ,KEY_C_i},
  410.   {(CHARTYPE *)"ENTER"    ,KEY_RETURN},
  411. #endif
  412.   {(CHARTYPE *)"Escape"   ,Escape},
  413.   {(CHARTYPE *)"Del"      ,Del},
  414.   {(CHARTYPE *)"CSI"      ,CSI},
  415.   {(CHARTYPE *)"BREAK"    ,KEY_BREAK },
  416.   {(CHARTYPE *)"F0"       ,KEY_F0},
  417.   {(CHARTYPE *)"F1"       ,(KEY_F(0)+1)},
  418.   {(CHARTYPE *)"F2"       ,(KEY_F(0)+2)},
  419.   {(CHARTYPE *)"F3"       ,(KEY_F(0)+3)},
  420.   {(CHARTYPE *)"F4"       ,(KEY_F(0)+4)},
  421.   {(CHARTYPE *)"F5"       ,(KEY_F(0)+5)},
  422.   {(CHARTYPE *)"F6"       ,(KEY_F(0)+6)},
  423.   {(CHARTYPE *)"F7"       ,(KEY_F(0)+7)},
  424.   {(CHARTYPE *)"F8"       ,(KEY_F(0)+8)},
  425.   {(CHARTYPE *)"F9"       ,(KEY_F(0)+9)},
  426.   {(CHARTYPE *)"F10"      ,(KEY_F(0)+10)},
  427.   {(CHARTYPE *)"F11"      ,(KEY_F(0)+11)},
  428.   {(CHARTYPE *)"F12"      ,(KEY_F(0)+12)},
  429.   {(CHARTYPE *)"F13"      ,(KEY_F(0)+13)},
  430.   {(CHARTYPE *)"F14"      ,(KEY_F(0)+14)},
  431.   {(CHARTYPE *)"F15"      ,(KEY_F(0)+15)},
  432.   {(CHARTYPE *)"F16"      ,(KEY_F(0)+16)},
  433.   {(CHARTYPE *)"F17"      ,(KEY_F(0)+17)},
  434.   {(CHARTYPE *)"F18"      ,(KEY_F(0)+18)},
  435.   {(CHARTYPE *)"F19"      ,(KEY_F(0)+19)},
  436.   {(CHARTYPE *)"F20"      ,(KEY_F(0)+20)},
  437.   {(CHARTYPE *)"F21"      ,(KEY_F(0)+21)},
  438.   {(CHARTYPE *)"F22"      ,(KEY_F(0)+22)},
  439.   {(CHARTYPE *)"F23"      ,(KEY_F(0)+23)},
  440.   {(CHARTYPE *)"F24"      ,(KEY_F(0)+24)},
  441.   {(CHARTYPE *)"F25"      ,(KEY_F(0)+25)},
  442.   {(CHARTYPE *)"F26"      ,(KEY_F(0)+26)},
  443.   {(CHARTYPE *)"F27"      ,(KEY_F(0)+27)},
  444.   {(CHARTYPE *)"F28"      ,(KEY_F(0)+28)},
  445.   {(CHARTYPE *)"F29"      ,(KEY_F(0)+29)},
  446.   {(CHARTYPE *)"F30"      ,(KEY_F(0)+30)},
  447.   {(CHARTYPE *)"F31"      ,(KEY_F(0)+31)},
  448.   {(CHARTYPE *)"F32"      ,(KEY_F(0)+32)},
  449.   {(CHARTYPE *)"F33"      ,(KEY_F(0)+33)},
  450.   {(CHARTYPE *)"F34"      ,(KEY_F(0)+34)},
  451.   {(CHARTYPE *)"F35"      ,(KEY_F(0)+35)},
  452.   {(CHARTYPE *)"F36"      ,(KEY_F(0)+36)},
  453.   {(CHARTYPE *)"F37"      ,(KEY_F(0)+37)},
  454.   {(CHARTYPE *)"F38"      ,(KEY_F(0)+38)},
  455.   {(CHARTYPE *)"F39"      ,(KEY_F(0)+39)},
  456.   {(CHARTYPE *)"F40"      ,(KEY_F(0)+40)},
  457.   {(CHARTYPE *)"F41"      ,(KEY_F(0)+41)},
  458.   {(CHARTYPE *)"F42"      ,(KEY_F(0)+42)},
  459.   {(CHARTYPE *)"F43"      ,(KEY_F(0)+43)},
  460.   {(CHARTYPE *)"F44"      ,(KEY_F(0)+44)},
  461.   {(CHARTYPE *)"F45"      ,(KEY_F(0)+45)},
  462.   {(CHARTYPE *)"F46"      ,(KEY_F(0)+46)},
  463.   {(CHARTYPE *)"F47"      ,(KEY_F(0)+47)},
  464.   {(CHARTYPE *)"F48"      ,(KEY_F(0)+48)},
  465.   {(CHARTYPE *)"F49"      ,(KEY_F(0)+49)},
  466.   {(CHARTYPE *)"F50"      ,(KEY_F(0)+50)},
  467.   {(CHARTYPE *)"F51"      ,(KEY_F(0)+51)},
  468.   {(CHARTYPE *)"F52"      ,(KEY_F(0)+52)},
  469.   {(CHARTYPE *)"F53"      ,(KEY_F(0)+53)},
  470.   {(CHARTYPE *)"F54"      ,(KEY_F(0)+54)},
  471.   {(CHARTYPE *)"F55"      ,(KEY_F(0)+55)},
  472.   {(CHARTYPE *)"F56"      ,(KEY_F(0)+56)},
  473.   {(CHARTYPE *)"F57"      ,(KEY_F(0)+57)},
  474.   {(CHARTYPE *)"F58"      ,(KEY_F(0)+58)},
  475.   {(CHARTYPE *)"F59"      ,(KEY_F(0)+59)},
  476.   {(CHARTYPE *)"F60"      ,(KEY_F(0)+60)},
  477.   {(CHARTYPE *)"F61"      ,(KEY_F(0)+61)},
  478.   {(CHARTYPE *)"F62"      ,(KEY_F(0)+62)},
  479.   {(CHARTYPE *)"F63"      ,(KEY_F(0)+63)},
  480.   {(CHARTYPE *)"F64"      ,(KEY_F(0)+64)},
  481.   {(CHARTYPE *)"DL"       ,KEY_DL},
  482.   {(CHARTYPE *)"IL"       ,KEY_IL},
  483.   {(CHARTYPE *)"DC"       ,KEY_DC},
  484.   {(CHARTYPE *)"IC"       ,KEY_IC},
  485.   {(CHARTYPE *)"EIC"      ,KEY_EIC},
  486.   {(CHARTYPE *)"CLEAR"    ,KEY_CLEAR},
  487.   {(CHARTYPE *)"EOS"      ,KEY_EOS},
  488.   {(CHARTYPE *)"EOL"      ,KEY_EOL},
  489.   {(CHARTYPE *)"SF"       ,KEY_SF},
  490.   {(CHARTYPE *)"SR"       ,KEY_SR},
  491.   {(CHARTYPE *)"NPAGE"    ,KEY_NPAGE},
  492.   {(CHARTYPE *)"PPAGE"    ,KEY_PPAGE},
  493.   {(CHARTYPE *)"STAB"     ,KEY_STAB},
  494.   {(CHARTYPE *)"CTAB"     ,KEY_CTAB},
  495.   {(CHARTYPE *)"CATAB"    ,KEY_CATAB},
  496.   {(CHARTYPE *)"ENTER"    ,KEY_ENTER},
  497.   {(CHARTYPE *)"S-RESET"  ,KEY_SRESET},
  498.   {(CHARTYPE *)"RESET"    ,KEY_RESET},
  499.   {(CHARTYPE *)"PRINT"    ,KEY_PRINT},
  500.   {(CHARTYPE *)"LL"       ,KEY_LL},
  501.   {(CHARTYPE *)"A1"       ,KEY_A1},
  502.   {(CHARTYPE *)"A3"       ,KEY_A3},
  503.   {(CHARTYPE *)"B2"       ,KEY_B2},
  504.   {(CHARTYPE *)"C1"       ,KEY_C1},
  505.   {(CHARTYPE *)"C3"       ,KEY_C3},
  506.   {(CHARTYPE *)"S-TAB"    ,KEY_BTAB},
  507.   {(CHARTYPE *)"BEG"      ,KEY_BEG},
  508.   {(CHARTYPE *)"CANCEL"   ,KEY_CANCEL},
  509.   {(CHARTYPE *)"CLOSE"    ,KEY_CLOSE},
  510.   {(CHARTYPE *)"COMMAND"  ,KEY_COMMAND},
  511.   {(CHARTYPE *)"COPY"     ,KEY_COPY},
  512.   {(CHARTYPE *)"CREATE"   ,KEY_CREATE},
  513.   {(CHARTYPE *)"END"      ,KEY_END},
  514.   {(CHARTYPE *)"EXIT"     ,KEY_EXIT},
  515.   {(CHARTYPE *)"FIND"     ,KEY_FIND},
  516.   {(CHARTYPE *)"HELP"     ,KEY_HELP},
  517.   {(CHARTYPE *)"MARK"     ,KEY_MARK},
  518.   {(CHARTYPE *)"MESSAGE"  ,KEY_MESSAGE},
  519.   {(CHARTYPE *)"MOVE"     ,KEY_MOVE},
  520.   {(CHARTYPE *)"NEXT"     ,KEY_NEXT},
  521.   {(CHARTYPE *)"OPEN"     ,KEY_OPEN},
  522.   {(CHARTYPE *)"OPTIONS"  ,KEY_OPTIONS},
  523.   {(CHARTYPE *)"PREVIOUS" ,KEY_PREVIOUS},
  524.   {(CHARTYPE *)"REDO"     ,KEY_REDO},
  525.   {(CHARTYPE *)"REFERENCE",KEY_REFERENCE},
  526.   {(CHARTYPE *)"REFRESH"  ,KEY_REFRESH},
  527.   {(CHARTYPE *)"REPLACE"  ,KEY_REPLACE},
  528.   {(CHARTYPE *)"RESTART"  ,KEY_RESTART},
  529.   {(CHARTYPE *)"RESUME"   ,KEY_RESUME},
  530.   {(CHARTYPE *)"SAVE"     ,KEY_SAVE},
  531.   {(CHARTYPE *)"S-BEG"    ,KEY_SBEG},
  532.   {(CHARTYPE *)"S-CANCEL" ,KEY_SCANCEL},
  533.   {(CHARTYPE *)"S-COMMAND",KEY_SCOMMAND},
  534.   {(CHARTYPE *)"S-COPY"   ,KEY_SCOPY},
  535.   {(CHARTYPE *)"S-CREATE" ,KEY_SCREATE},
  536.   {(CHARTYPE *)"S-DC"     ,KEY_SDC},
  537.   {(CHARTYPE *)"S-DL"     ,KEY_SDL},
  538.   {(CHARTYPE *)"SELECT"   ,KEY_SELECT},
  539.   {(CHARTYPE *)"S-END"    ,KEY_SEND},
  540.   {(CHARTYPE *)"S-EOL"    ,KEY_SEOL},
  541.   {(CHARTYPE *)"S-EXIT"   ,KEY_SEXIT},
  542.   {(CHARTYPE *)"S-FIND"   ,KEY_SFIND},
  543.   {(CHARTYPE *)"S-HELP"   ,KEY_SHELP},
  544.   {(CHARTYPE *)"S-HOME"   ,KEY_SHOME},
  545.   {(CHARTYPE *)"S-IC"     ,KEY_SIC},
  546.   {(CHARTYPE *)"S-CURL"   ,KEY_SLEFT},
  547.   {(CHARTYPE *)"S-MESSAGE",KEY_SMESSAGE},
  548.   {(CHARTYPE *)"S-MOVE"   ,KEY_SMOVE},
  549.   {(CHARTYPE *)"S-NEXT"   ,KEY_SNEXT},
  550.   {(CHARTYPE *)"S-OPTIONS",KEY_SOPTIONS},
  551.   {(CHARTYPE *)"S-PREVIOUS",KEY_SPREVIOUS},
  552.   {(CHARTYPE *)"S-PRINT"  ,KEY_SPRINT},
  553.   {(CHARTYPE *)"S-REDO"   ,KEY_SREDO},
  554.   {(CHARTYPE *)"S-REPLACE",KEY_SREPLACE},
  555.   {(CHARTYPE *)"S-CURR"   ,KEY_SRIGHT},
  556.   {(CHARTYPE *)"S-RSUME"  ,KEY_SRSUME},
  557.   {(CHARTYPE *)"S-SAVE"   ,KEY_SSAVE},
  558.   {(CHARTYPE *)"S-SUSPEND",KEY_SSUSPEND},
  559.   {(CHARTYPE *)"S-UNDO"   ,KEY_SUNDO},
  560.   {(CHARTYPE *)"SUSPEND"  ,KEY_SUSPEND},
  561.   {(CHARTYPE *)"UNDO"     ,KEY_UNDO},
  562.   {(CHARTYPE *)"C-CURL"   ,KEY_CLEFT},
  563.   {(CHARTYPE *)"C-CURR"   ,KEY_CRIGHT},
  564.   {(CHARTYPE *)"C-CURU"   ,KEY_CUP},
  565.   {(CHARTYPE *)"C-CURD"   ,KEY_CDOWN},
  566.   {(CHARTYPE *)"C-HOME"   ,KEY_CHOME},
  567.   {(CHARTYPE *)"C-END"    ,KEY_CEND},
  568.   {(CHARTYPE *)"C-PGUP"   ,KEY_CPGUP},
  569.   {(CHARTYPE *)"C-PGDN"   ,KEY_CPGDN},
  570. #endif
  571.   {(CHARTYPE *)"C-A",(int)KEY_C_a},
  572.   {(CHARTYPE *)"C-B",(int)KEY_C_b},
  573.   {(CHARTYPE *)"C-C",(int)KEY_C_c},
  574.   {(CHARTYPE *)"C-D",(int)KEY_C_d},
  575.   {(CHARTYPE *)"C-E",(int)KEY_C_e},
  576.   {(CHARTYPE *)"C-F",(int)KEY_C_f},
  577.   {(CHARTYPE *)"C-G",(int)KEY_C_g},
  578.   {(CHARTYPE *)"C-H",(int)KEY_C_h},
  579.   {(CHARTYPE *)"C-I",(int)KEY_C_i},
  580.   {(CHARTYPE *)"C-J",(int)KEY_C_j},
  581.   {(CHARTYPE *)"C-K",(int)KEY_C_k},
  582.   {(CHARTYPE *)"C-L",(int)KEY_C_l},
  583.   {(CHARTYPE *)"C-M",(int)KEY_C_m},
  584.   {(CHARTYPE *)"C-N",(int)KEY_C_n},
  585.   {(CHARTYPE *)"C-O",(int)KEY_C_o},
  586.   {(CHARTYPE *)"C-P",(int)KEY_C_p},
  587.   {(CHARTYPE *)"C-Q",(int)KEY_C_q},
  588.   {(CHARTYPE *)"C-R",(int)KEY_C_r},
  589.   {(CHARTYPE *)"C-S",(int)KEY_C_s},
  590.   {(CHARTYPE *)"C-T",(int)KEY_C_t},
  591.   {(CHARTYPE *)"C-U",(int)KEY_C_u},
  592.   {(CHARTYPE *)"C-V",(int)KEY_C_v},
  593.   {(CHARTYPE *)"C-W",(int)KEY_C_w},
  594.   {(CHARTYPE *)"C-X",(int)KEY_C_x},
  595.   {(CHARTYPE *)"C-Y",(int)KEY_C_y},
  596.   {(CHARTYPE *)"C-Z",(int)KEY_C_z},
  597.   {(CHARTYPE *)NULL    ,0},
  598. };
  599.